package y23.Sep;

import java.util.Arrays;
import java.util.Stack;

public class Test15 {
    public static void main(String[] args) {
        ListNode nodeSta = new ListNode(1);    //创建首节点
        ListNode nextNode;                     //声明一个变量用来在移动过程中指向当前节点
        nextNode=nodeSta;                      //指向首节点
        ListNode node1 = new ListNode(3);  //生成新的节点
        nextNode.next=node1;               //把心节点连起来
        nextNode=nextNode.next;               //打印输出
        ListNode node2 = new ListNode(2);  //生成新的节点
        nextNode.next=node2;               //把心节点连起来
        nextNode=nextNode.next;               //打印输出
        System.out.println(Arrays.toString(reversePrint(nodeSta)));
    }
    public static int[] reversePrint(ListNode head) {
        Stack<ListNode> stack = new Stack<ListNode>();
        ListNode temp = head;
        while (temp != null) {
            stack.push(temp);
            temp = temp.next;
        }
        int size = stack.size();
        int[] print = new int[size];
        for (int i = 0; i < size; i++) {
            print[i] = stack.pop().val;
        }
        return print;
    }
}

class ListNode {        //类名 ：Java类就是一种自定义的数据结构
    int val;            //数据 ：节点数据
    ListNode next;      //对象 ：引用下一个节点对象。在Java中没有指针的概念，Java中的引用和C语言的指针类似

    ListNode(int val){  //构造方法 ：构造方法和类名相同
        this.val=val;   //把接收的参数赋值给当前类的val变量
    }
}

